---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.8.0
  name: scopes.kubelatte.io
spec:
  group: kubelatte.io
  names:
    kind: Scope
    listKind: ScopeList
    plural: scopes
    singular: scope
  scope: Namespaced
  versions:
    - name: v1alpha1
      schema:
        openAPIV3Schema:
          description: Scope is the Schema for the Scopes API
          properties:
            apiVersion:
              description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
              type: string
            kind:
              description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
              type: string
            metadata:
              type: object
            spec:
              properties:
                items:
                  items:
                    description: Item ScopeItems defines items of Scope
                    properties:
                      apiVersion:
                        type: string
                      kind:
                        type: string
                      match:
                        properties:
                          annotationSelector:
                            properties:
                              matchExpressions:
                                items:
                                  properties:
                                    key:
                                      type: string
                                    operator:
                                      enum:
                                        - In
                                        - NotIn
                                        - Exists
                                        - DoesNotExist
                                      type: string
                                    values:
                                      items:
                                        type: string
                                      type: array
                                  required:
                                    - key
                                    - operator
                                  type: object
                                type: array
                            required:
                              - matchExpressions
                            type: object
                          excludedNamespaces:
                            properties:
                              regex:
                                items:
                                  type: string
                                type: array
                              values:
                                items:
                                  type: string
                                type: array
                            type: object
                          kinds:
                            items:
                              properties:
                                apiGroups:
                                  items:
                                    type: string
                                  type: array
                                kinds:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            type: array
                          labelSelector:
                            properties:
                              matchExpressions:
                                items:
                                  properties:
                                    key:
                                      type: string
                                    operator:
                                      enum:
                                        - In
                                        - NotIn
                                        - Exists
                                        - DoesNotExist
                                      type: string
                                    values:
                                      items:
                                        type: string
                                      type: array
                                  required:
                                    - key
                                    - operator
                                  type: object
                                type: array
                            required:
                              - matchExpressions
                            type: object
                          matchConditions:
                            properties:
                              object:
                                items:
                                  properties:
                                    condition:
                                      enum:
                                        - MustExist
                                        - MustNotExist
                                      type: string
                                    path:
                                      type: string
                                  required:
                                    - condition
                                    - path
                                  type: object
                                type: array
                              oldObject:
                                items:
                                  properties:
                                    condition:
                                      enum:
                                        - MustExist
                                        - MustNotExist
                                      type: string
                                    path:
                                      type: string
                                  required:
                                    - condition
                                    - path
                                  type: object
                                type: array
                            type: object
                          name:
                            properties:
                              regex:
                                type: string
                              value:
                                type: string
                            type: object
                          namespaceSelector:
                            properties:
                              matchExpressions:
                                items:
                                  properties:
                                    key:
                                      type: string
                                    operator:
                                      enum:
                                        - In
                                        - NotIn
                                        - Exists
                                        - DoesNotExist
                                      type: string
                                    values:
                                      items:
                                        type: string
                                      type: array
                                  required:
                                    - key
                                    - operator
                                  type: object
                                type: array
                            required:
                              - matchExpressions
                            type: object
                          namespaces:
                            properties:
                              regex:
                                items:
                                  type: string
                                type: array
                              values:
                                items:
                                  type: string
                                type: array
                            type: object
                          operations:
                            items:
                              type: string
                            type: array
                          scope:
                            enum:
                              - '*'
                              - Cluster
                              - Namespaced
                            type: string
                          userInfo:
                            properties:
                              username:
                                type: string
                              usernameRegex:
                                type: string
                            type: object
                        required:
                          - kinds
                        type: object
                      name:
                        type: string
                      path:
                        type: string
                      rule:
                        properties:
                          rego:
                            properties:
                              parameters:
                                type: string
                              template:
                                type: string
                            required:
                              - template
                            type: object
                          simples:
                            items:
                              properties:
                                action:
                                  default: deny
                                  enum:
                                    - allow
                                    - deny
                                  type: string
                                message:
                                  type: string
                                name:
                                  type: string
                                path:
                                  type: string
                                value:
                                  type: string
                              required:
                                - name
                                - path
                                - value
                              type: object
                            type: array
                        type: object
                      value:
                        type: string
                    required:
                      - name
                    type: object
                  type: array
                type:
                  default: mutation
                  type: string
              required:
                - items
              type: object
            status:
              properties:
                conditions:
                  items:
                    properties:
                      lastTransitionTime:
                        format: date-time
                        type: string
                      message:
                        type: string
                      status:
                        type: string
                      type:
                        type: string
                    required:
                      - status
                      - type
                    type: object
                  type: array
                phase:
                  description: 'INSERT ADDITIONAL STATUS FIELD - define observed state
                  of cluster Important: Run "make" to regenerate code after modifying
                  this file'
                  type: string
              type: object
          type: object
      served: true
      storage: true
      subresources:
        status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.8.0
  name: templates.kubelatte.io
spec:
  group: kubelatte.io
  names:
    kind: Template
    listKind: TemplateList
    plural: templates
    singular: template
  scope: Namespaced
  versions:
    - name: v1alpha1
      schema:
        openAPIV3Schema:
          properties:
            apiVersion:
              description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
              type: string
            kind:
              description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
              type: string
            metadata:
              type: object
            spec:
              description: TemplateSpec defines the desired state of Template
              properties:
                apiVersion:
                  type: string
                data:
                  type: string
                kind:
                  type: string
                type:
                  type: string
              required:
                - data
              type: object
            status:
              description: TemplateStatus defines the observed state of Template
              properties:
                conditions:
                  items:
                    properties:
                      lastTransitionTime:
                        format: date-time
                        type: string
                      message:
                        type: string
                      status:
                        type: string
                      type:
                        type: string
                    required:
                      - status
                      - type
                    type: object
                  type: array
                phase:
                  type: string
              type: object
          type: object
      served: true
      storage: true
      subresources:
        status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.8.0
  name: triggerinstances.kubelatte.io
spec:
  group: kubelatte.io
  names:
    kind: TriggerInstance
    listKind: TriggerInstanceList
    plural: triggerinstances
    singular: triggerinstance
  scope: Namespaced
  versions:
    - name: v1alpha1
      schema:
        openAPIV3Schema:
          description: TriggerInstance is the Schema for the triggerinstances API
          properties:
            apiVersion:
              description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
              type: string
            kind:
              description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
              type: string
            metadata:
              type: object
            spec:
              description: TriggerInstanceSpec defines the desired state of TriggerInstance
              properties:
                data:
                  description: 'INSERT ADDITIONAL SPEC FIELDS - desired state of cluster
                  Important: Run "make" to regenerate code after modifying this file'
                  type: string
                  x-kubernetes-preserve-unknown-fields: true
              type: object
            status:
              description: TriggerInstanceStatus defines the observed state of TriggerInstance
              properties:
                resourcestatus:
                  description: 'INSERT ADDITIONAL STATUS FIELD - define observed state
                  of cluster Important: Run "make" to regenerate code after modifying
                  this file'
                  items:
                    properties:
                      apiVersion:
                        type: string
                      kind:
                        type: string
                      message:
                        type: string
                      name:
                        type: string
                      phase:
                        type: string
                      status:
                        type: string
                    type: object
                    x-kubernetes-preserve-unknown-fields: true
                  type: array
              required:
                - resourcestatus
              type: object
          type: object
      served: true
      storage: true
      subresources:
        status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.8.0
  name: triggers.kubelatte.io
spec:
  group: kubelatte.io
  names:
    kind: Trigger
    listKind: TriggerList
    plural: triggers
    singular: trigger
  scope: Namespaced
  versions:
    - name: v1alpha1
      schema:
        openAPIV3Schema:
          description: Trigger is the Schema for the Triggers API
          properties:
            apiVersion:
              description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
              type: string
            kind:
              description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
              type: string
            metadata:
              type: object
            spec:
              properties:
                creationConfigs:
                  description: Foo is an example field of Trigger. Edit Template_types.go
                    to remove/update
                  items:
                    properties:
                      action:
                        type: string
                      annotationNamespace:
                        type: string
                      annotationTrigger:
                        type: string
                      disableUniqueName:
                        type: string
                      labelSelector:
                        description: A label selector is a label query over a set of
                          resources. The result of matchLabels and matchExpressions
                          are ANDed. An empty label selector matches all objects. A
                          null label selector matches no objects.
                        properties:
                          matchExpressions:
                            description: matchExpressions is a list of label selector
                              requirements. The requirements are ANDed.
                            items:
                              description: A label selector requirement is a selector
                                that contains values, a key, and an operator that relates
                                the key and values.
                              properties:
                                key:
                                  description: key is the label key that the selector
                                    applies to.
                                  type: string
                                operator:
                                  description: operator represents a key's relationship
                                    to a set of values. Valid operators are In, NotIn,
                                    Exists and DoesNotExist.
                                  type: string
                                values:
                                  description: values is an array of string values.
                                    If the operator is In or NotIn, the values array
                                    must be non-empty. If the operator is Exists or
                                    DoesNotExist, the values array must be empty. This
                                    array is replaced during a strategic merge patch.
                                  items:
                                    type: string
                                  type: array
                              required:
                                - key
                                - operator
                              type: object
                            type: array
                          matchLabels:
                            additionalProperties:
                              type: string
                            description: matchLabels is a map of {key,value} pairs.
                              A single {key,value} in the matchLabels map is equivalent
                              to an element of matchExpressions, whose key field is
                              "key", the operator is "In", and the values array contains
                              only "value". The requirements are ANDed.
                            type: object
                        type: object
                      name:
                        type: string
                      templateRefs:
                        items:
                          type: string
                        type: array
                    required:
                      - name
                      - templateRefs
                    type: object
                  type: array
                mutationConfigs:
                  items:
                    properties:
                      annotationNamespace:
                        type: string
                      annotationTrigger:
                        type: string
                      annotations:
                        items:
                          type: string
                        type: array
                      containers:
                        items:
                          type: string
                        type: array
                      ignoreNamespaces:
                        items:
                          type: string
                        type: array
                      labelSelector:
                        description: A label selector is a label query over a set of
                          resources. The result of matchLabels and matchExpressions
                          are ANDed. An empty label selector matches all objects. A
                          null label selector matches no objects.
                        properties:
                          matchExpressions:
                            description: matchExpressions is a list of label selector
                              requirements. The requirements are ANDed.
                            items:
                              description: A label selector requirement is a selector
                                that contains values, a key, and an operator that relates
                                the key and values.
                              properties:
                                key:
                                  description: key is the label key that the selector
                                    applies to.
                                  type: string
                                operator:
                                  description: operator represents a key's relationship
                                    to a set of values. Valid operators are In, NotIn,
                                    Exists and DoesNotExist.
                                  type: string
                                values:
                                  description: values is an array of string values.
                                    If the operator is In or NotIn, the values array
                                    must be non-empty. If the operator is Exists or
                                    DoesNotExist, the values array must be empty. This
                                    array is replaced during a strategic merge patch.
                                  items:
                                    type: string
                                  type: array
                              required:
                                - key
                                - operator
                              type: object
                            type: array
                          matchLabels:
                            additionalProperties:
                              type: string
                            description: matchLabels is a map of {key,value} pairs.
                              A single {key,value} in the matchLabels map is equivalent
                              to an element of matchExpressions, whose key field is
                              "key", the operator is "In", and the values array contains
                              only "value". The requirements are ANDed.
                            type: object
                        type: object
                      match:
                        properties:
                          annotationSelector:
                            properties:
                              matchExpressions:
                                items:
                                  properties:
                                    key:
                                      type: string
                                    operator:
                                      enum:
                                        - In
                                        - NotIn
                                        - Exists
                                        - DoesNotExist
                                      type: string
                                    values:
                                      items:
                                        type: string
                                      type: array
                                  required:
                                    - key
                                    - operator
                                  type: object
                                type: array
                            required:
                              - matchExpressions
                            type: object
                          excludedNamespaces:
                            properties:
                              regex:
                                items:
                                  type: string
                                type: array
                              values:
                                items:
                                  type: string
                                type: array
                            type: object
                          kinds:
                            items:
                              properties:
                                apiGroups:
                                  items:
                                    type: string
                                  type: array
                                kinds:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            type: array
                          labelSelector:
                            properties:
                              matchExpressions:
                                items:
                                  properties:
                                    key:
                                      type: string
                                    operator:
                                      enum:
                                        - In
                                        - NotIn
                                        - Exists
                                        - DoesNotExist
                                      type: string
                                    values:
                                      items:
                                        type: string
                                      type: array
                                  required:
                                    - key
                                    - operator
                                  type: object
                                type: array
                            required:
                              - matchExpressions
                            type: object
                          matchConditions:
                            properties:
                              object:
                                items:
                                  properties:
                                    condition:
                                      enum:
                                        - MustExist
                                        - MustNotExist
                                      type: string
                                    path:
                                      type: string
                                  required:
                                    - condition
                                    - path
                                  type: object
                                type: array
                              oldObject:
                                items:
                                  properties:
                                    condition:
                                      enum:
                                        - MustExist
                                        - MustNotExist
                                      type: string
                                    path:
                                      type: string
                                  required:
                                    - condition
                                    - path
                                  type: object
                                type: array
                            type: object
                          name:
                            properties:
                              regex:
                                type: string
                              value:
                                type: string
                            type: object
                          namespaceSelector:
                            properties:
                              matchExpressions:
                                items:
                                  properties:
                                    key:
                                      type: string
                                    operator:
                                      enum:
                                        - In
                                        - NotIn
                                        - Exists
                                        - DoesNotExist
                                      type: string
                                    values:
                                      items:
                                        type: string
                                      type: array
                                  required:
                                    - key
                                    - operator
                                  type: object
                                type: array
                            required:
                              - matchExpressions
                            type: object
                          namespaces:
                            properties:
                              regex:
                                items:
                                  type: string
                                type: array
                              values:
                                items:
                                  type: string
                                type: array
                            type: object
                          operations:
                            items:
                              type: string
                            type: array
                          scope:
                            enum:
                              - '*'
                              - Cluster
                              - Namespaced
                            type: string
                          userInfo:
                            properties:
                              username:
                                type: string
                              usernameRegex:
                                type: string
                            type: object
                        required:
                          - kinds
                        type: object
                      name:
                        type: string
                      objectSelector:
                        properties:
                          kind:
                            type: string
                          name:
                            type: string
                        required:
                          - kind
                          - name
                        type: object
                      templateRefs:
                        items:
                          type: string
                        type: array
                      updateStrategy:
                        default: merge
                        enum:
                          - merge
                          - replace
                        type: string
                      volumes:
                        items:
                          type: string
                        type: array
                    required:
                      - name
                    type: object
                  type: array
                sideEffectConfigs:
                  items:
                    properties:
                      match:
                        properties:
                          annotationSelector:
                            properties:
                              matchExpressions:
                                items:
                                  properties:
                                    key:
                                      type: string
                                    operator:
                                      enum:
                                        - In
                                        - NotIn
                                        - Exists
                                        - DoesNotExist
                                      type: string
                                    values:
                                      items:
                                        type: string
                                      type: array
                                  required:
                                    - key
                                    - operator
                                  type: object
                                type: array
                            required:
                              - matchExpressions
                            type: object
                          excludedNamespaces:
                            properties:
                              regex:
                                items:
                                  type: string
                                type: array
                              values:
                                items:
                                  type: string
                                type: array
                            type: object
                          kinds:
                            items:
                              properties:
                                apiGroups:
                                  items:
                                    type: string
                                  type: array
                                kinds:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            type: array
                          labelSelector:
                            properties:
                              matchExpressions:
                                items:
                                  properties:
                                    key:
                                      type: string
                                    operator:
                                      enum:
                                        - In
                                        - NotIn
                                        - Exists
                                        - DoesNotExist
                                      type: string
                                    values:
                                      items:
                                        type: string
                                      type: array
                                  required:
                                    - key
                                    - operator
                                  type: object
                                type: array
                            required:
                              - matchExpressions
                            type: object
                          matchConditions:
                            properties:
                              object:
                                items:
                                  properties:
                                    condition:
                                      enum:
                                        - MustExist
                                        - MustNotExist
                                      type: string
                                    path:
                                      type: string
                                  required:
                                    - condition
                                    - path
                                  type: object
                                type: array
                              oldObject:
                                items:
                                  properties:
                                    condition:
                                      enum:
                                        - MustExist
                                        - MustNotExist
                                      type: string
                                    path:
                                      type: string
                                  required:
                                    - condition
                                    - path
                                  type: object
                                type: array
                            type: object
                          name:
                            properties:
                              regex:
                                type: string
                              value:
                                type: string
                            type: object
                          namespaceSelector:
                            properties:
                              matchExpressions:
                                items:
                                  properties:
                                    key:
                                      type: string
                                    operator:
                                      enum:
                                        - In
                                        - NotIn
                                        - Exists
                                        - DoesNotExist
                                      type: string
                                    values:
                                      items:
                                        type: string
                                      type: array
                                  required:
                                    - key
                                    - operator
                                  type: object
                                type: array
                            required:
                              - matchExpressions
                            type: object
                          namespaces:
                            properties:
                              regex:
                                items:
                                  type: string
                                type: array
                              values:
                                items:
                                  type: string
                                type: array
                            type: object
                          operations:
                            items:
                              enum:
                                - CREATE
                                - UPDATE
                                - DELETE
                              type: string
                            type: array
                          scope:
                            enum:
                              - '*'
                              - Cluster
                              - Namespaced
                            type: string
                          userInfo:
                            properties:
                              username:
                                type: string
                              usernameRegex:
                                type: string
                            type: object
                        required:
                          - kinds
                        type: object
                      name:
                        type: string
                      templateRefs:
                        items:
                          type: string
                        type: array
                    required:
                      - match
                      - name
                      - templateRefs
                    type: object
                  type: array
              type: object
            status:
              description: TriggerStatus defines the observed state of Trigger
              properties:
                conditions:
                  items:
                    properties:
                      lastTransitionTime:
                        format: date-time
                        type: string
                      message:
                        type: string
                      status:
                        type: string
                      type:
                        type: string
                    required:
                      - status
                      - type
                    type: object
                  type: array
                phase:
                  type: string
              type: object
          type: object
      served: true
      storage: true
      subresources:
        status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
